package com.cskaoyan._10anonymous;

/**
 * @description:
 * @author: 景天
 * @date: 2023/2/6 16:11
 **/
/*
匿名对象:
    之前的写法
        类名 对象名 = new 类名()
    现在new 类名()
        没有引用接收,没有名字,匿名对象

使用场景:
1.方法调用的时候,匿名对象作为参数进行传递
2.方法的返回值,匿名对象作为方法的返回值
 */
public class Demo {
    public static void main(String[] args) {
        // 不使用匿名对象
        Person person = new Person("咸鱼", 29);
        // 方法调用,把person对象作为参数进行传递
        m1(person);
        System.out.println("---------");
        // 使用匿名对象
        m1(new Person("张三", 18));


        // 调用getPerson()
        Person person1 = getPerson();
        System.out.println(person1.name + "-----" + person1.age);
    }

    // Person对象作为参数
    public static void m1(Person person) {
        System.out.println(person.name);
        System.out.println(person.age);
    }

    // 要求这个方法返回一个Person对象
    public static Person getPerson() {
        // 不用匿名对象
        //Person person = new Person("李四", 30);

        // 返回一个person对象
        //return person;

        // 使用匿名对象
        return new Person("王五", 25);
    }
}

class Person{
    String name;
    int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}